跳到主要内容

-- 测试

Create by fall on 2022-09-26 Recently revised in 2022-09-26

测试方案

单元测试

测试函数的业务逻辑和逻辑正确性。

推荐使用

  • Vitest

    因为由 create-vue 创建的官方项目配置是基于 Vite 的,所以我们推荐你使用一个可以利用同一套 Vite 配置和转换管道的单元测试框架。Vitest 正是一个针对此目标设计的单元测试框架,它由 Vue / Vite 团队成员开发和维护。在 Vite 的项目集成它会非常简单,而且速度非常快。

其它测试

  • Peeky 是另一速度极快的单元测试运行器,对 Vite 集成提供第一优先级支持。它也是由 Vue 核心团队成员创建的,并提供了一个基于图形用户界面(GUI)的测试界面。
  • Jest 是一个广受欢迎的单元测试框架,并可通过 vite-jest 这个包在 Vite 中使用。不过,我们只推荐你在已有一套 Jest 测试配置、且需要迁移到基于 Vite 的项目时使用它,因为 Vitest 提供了更无缝的集成和更好的性能。

组件测试

测试这个组件做了什么,而不是测试它是怎么做到的

推荐方案

组件挂载库

  • @testing-library/vue 是一个 Vue 的测试库,专注于测试组件而不依赖其他实现细节。因其良好的设计使得代码重构也变得非常容易。它的指导原则是,测试代码越接近软件的使用方式,它们就越值得信赖。
  • @vue/test-utils 是官方的底层组件测试库,用来提供给用户访问 Vue 特有的 API。@testing-library/vue 也是基于此库构建的。

其它测试

Nightwatch 是一个端到端测试运行器,支持 Vue 的组件测试。(Nightwatch v2 版本的 示例项目

端到端测试

端到端测试也叫 E2E 测试

当用户实际使用时,用户的体验如何。

推荐方案

  • Cypress

    总的来说,我们认为 Cypress 提供了最完整的端到端解决方案,其具有信息丰富的图形界面、出色的调试性、内置断言和存根、抗剥落性、并行化和快照等诸多特性。而且如上所述,它还提供对 组件测试 的支持。不过,它只支持测试基于 Chromium 的浏览器和 Firefox。

其他选项

使用

文章名称连接
官方文档https://cn.vuejs.org/guide/scaling-up/testing.html#recipes